ASP.Net MVC-তে ফিল্টার এবং অ্যাট্রিবিউট দুটি অত্যন্ত শক্তিশালী কনসেপ্ট, যা অ্যাপ্লিকেশনের বিভিন্ন দিক যেমন অ্যাকশন মেথড, কন্ট্রোলার এবং রাউটিংয়ের আগে বা পরে কিছু আচরণ প্রয়োগ করতে সাহায্য করে। ফিল্টার এবং অ্যাট্রিবিউট সাধারণত ক্রস-কাটিং কনসার্ন (cross-cutting concerns) যেমন লগিং, অ্যাডমিন চেক, অথেনটিকেশন, অথোরাইজেশন ইত্যাদি পরিচালনার জন্য ব্যবহৃত হয়।
ASP.Net MVC-তে দুটি প্রধান ধরনের ফিল্টার রয়েছে: অ্যাকশন ফিল্টার এবং রেসাল্ট ফিল্টার। এগুলোর মধ্যে কিছু সাধারণ অ্যাট্রিবিউটও রয়েছে যা আপনি নির্দিষ্ট অ্যাকশন মেথড বা কন্ট্রোলারে প্রয়োগ করতে পারেন।
ফিল্টার একটি কাস্টম লজিক বা আচরণ যা ASP.Net MVC অ্যাপ্লিকেশনের বিভিন্ন পর্যায়ে, যেমন, রিকুয়েস্ট প্রক্রেসিং বা রেসপন্স প্রেরণের সময়, অ্যাপ্লিকেশন চালানোর সময় প্রয়োগ করা হয়।
[Authorize]
, [AllowAnonymous]
[HttpPost]
, [ValidateAntiForgeryToken]
[OutputCache]
অ্যাট্রিবিউট একটি বিশেষ ধরনের মেটাডেটা, যা ASP.Net MVC অ্যাপ্লিকেশনের মেথড, ক্লাস, বা প্রপার্টিতে প্রয়োগ করা হয়। এটি একটি নির্দিষ্ট আচরণ বা বৈশিষ্ট্য সংজ্ঞায়িত করে এবং সেটি কার্যকরী হয় যখন সেই মেথড বা ক্লাসে এটি প্রয়োগ করা হয়।
[Authorize]
[Authorize]
public ActionResult Dashboard()
{
return View();
}
[AllowAnonymous]
[AllowAnonymous]
অ্যাট্রিবিউট ব্যবহার করতে পারেন।[AllowAnonymous]
public ActionResult Login()
{
return View();
}
[HandleError]
[HandleError]
public ActionResult Create()
{
// Code that may throw an exception
}
[ValidateAntiForgeryToken]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Name, Age")] User user)
{
if (ModelState.IsValid)
{
db.Users.Add(user);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}
[OutputCache]
[OutputCache(Duration = 60, VaryByParam = "id")]
public ActionResult Details(int id)
{
var model = db.Items.Find(id);
return View(model);
}
ASP.Net MVC-তে আপনি কাস্টম ফিল্টার তৈরি করতে পারেন যা আপনার প্রয়োজনীয়তার ভিত্তিতে একটি নির্দিষ্ট আচরণ সংজ্ঞায়িত করে। কাস্টম ফিল্টার তৈরির জন্য ActionFilterAttribute
, ResultFilterAttribute
, এবং ExceptionFilterAttribute
ক্লাস ব্যবহার করা হয়।
public class CustomActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Custom logic before action executes
base.OnActionExecuting(filterContext);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
// Custom logic after action executes
base.OnActionExecuted(filterContext);
}
}
এটি কন্ট্রোলারে অ্যাট্রিবিউট হিসেবে ব্যবহার করা হয়:
[CustomActionFilter]
public ActionResult Index()
{
return View();
}
ASP.Net MVC-তে ফিল্টার এবং অ্যাট্রিবিউট অত্যন্ত শক্তিশালী টুল, যা কোডের পুনঃব্যবহারযোগ্যতা, নিরাপত্তা, এবং কার্যকারিতা বাড়াতে সাহায্য করে। ফিল্টার এবং অ্যাট্রিবিউট ব্যবহারের মাধ্যমে ডেভেলপাররা অ্যাকশন, কন্ট্রোলার, এবং ভিউ স্তরে বিভিন্ন কার্যকলাপ বা লজিক প্রয়োগ করতে পারেন। ASP.Net MVC-তে কাস্টম ফিল্টার এবং অ্যাট্রিবিউট তৈরি করা সম্ভব, যা বিশেষ ধরনের আচরণকে প্রয়োগ করতে সহায়ক।
ASP.Net MVC-তে Authentication এবং Authorization ফিল্টার দুটি গুরুত্বপূর্ণ নিরাপত্তা উপাদান। Authentication ফিল্টার নিশ্চিত করে ব্যবহারকারী অ্যাপ্লিকেশনে প্রবেশ করার অনুমোদিত কিনা, আর Authorization ফিল্টার ব্যবহারকারীর নির্দিষ্ট অ্যাকশন বা রিসোর্সে অ্যাক্সেস অনুমোদন নিয়ন্ত্রণ করে। এই ফিল্টারগুলো অ্যাপ্লিকেশনের নিরাপত্তা বৃদ্ধিতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Authentication হলো প্রক্রিয়া যা নিশ্চিত করে যে ব্যবহারকারী অ্যাপ্লিকেশনে প্রবেশ করার জন্য বৈধ। Authentication ফিল্টার ASP.Net MVC 5 থেকে অন্তর্ভুক্ত করা হয়েছে, যা Global, Controller, বা Action লেভেলে প্রয়োগ করা যায়।
নিচে একটি কাস্টম Authentication ফিল্টার তৈরি করার উদাহরণ দেওয়া হলো:
using System.Web.Mvc;
public class CustomAuthenticationFilter : ActionFilterAttribute, IAuthenticationFilter
{
public void OnAuthentication(AuthenticationContext filterContext)
{
var user = filterContext.HttpContext.User;
if (user == null || !user.Identity.IsAuthenticated)
{
filterContext.Result = new HttpUnauthorizedResult();
}
}
public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
{
// Optional: Additional actions after authentication challenge
}
}
ফিল্টার প্রয়োগ করা:
[CustomAuthenticationFilter]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
Authorization ফিল্টার নির্ধারণ করে ব্যবহারকারী নির্দিষ্ট অ্যাকশন বা রিসোর্সে অ্যাক্সেস করতে পারবে কিনা। এটি AuthorizeAttribute ব্যবহার করে সহজে প্রয়োগ করা যায়।
AuthorizeAttribute একটি বিল্ট-ইন ফিল্টার, যা ব্যবহারকারীর অ্যাক্সেস নিয়ন্ত্রণের জন্য ব্যবহৃত হয়।
[Authorize]
public class AdminController : Controller
{
public IActionResult Dashboard()
{
return View();
}
}
নির্দিষ্ট রোল বা ব্যবহারকারীদের জন্য প্রয়োগ করা:
[Authorize(Roles = "Admin")]
public class AdminController : Controller
{
public IActionResult Dashboard()
{
return View();
}
}
[Authorize(Users = "specificUser@example.com")]
public class UserController : Controller
{
public IActionResult Profile()
{
return View();
}
}
প্রয়োজন অনুযায়ী একটি কাস্টম Authorization ফিল্টার তৈরি করা যায়:
using System.Web.Mvc;
public class CustomAuthorizationFilter : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var user = httpContext.User;
return user != null && user.Identity.IsAuthenticated && user.IsInRole("Admin");
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectResult("/Account/Login");
}
}
কন্ট্রোলারে প্রয়োগ:
[CustomAuthorizationFilter]
public class AdminController : Controller
{
public IActionResult Dashboard()
{
return View();
}
}
Global Level:
Global ফিল্টার হিসেবে Authentication এবং Authorization ফিল্টার যোগ করতে পারেন Global.asax বা FilterConfig.cs-এ:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new AuthorizeAttribute());
filters.Add(new CustomAuthenticationFilter());
}
Controller Level:
কোনো নির্দিষ্ট কন্ট্রোলারে ফিল্টার প্রয়োগ করতে কন্ট্রোলারের উপরে অ্যাট্রিবিউট যুক্ত করুন।
Action Level:
নির্দিষ্ট অ্যাকশনে ফিল্টার প্রয়োগ করতে অ্যাকশনের উপরে অ্যাট্রিবিউট যুক্ত করুন।
বিষয় | Authentication | Authorization |
---|---|---|
উদ্দেশ্য | ব্যবহারকারী বৈধ কিনা তা যাচাই করে। | ব্যবহারকারী নির্দিষ্ট রিসোর্স বা অ্যাকশনে অ্যাক্সেস করতে পারবে কিনা তা নিয়ন্ত্রণ করে। |
প্রয়োগের স্তর | প্রথম ধাপে (লগইন প্রক্রিয়ার সময়)। | পরবর্তী ধাপে (অ্যাক্সেস নিয়ন্ত্রণ)। |
ফিল্টার টাইপ | IAuthenticationFilter | IAuthorizationFilter |
ASP.Net MVC-তে Authentication এবং Authorization ফিল্টার অ্যাপ্লিকেশনের নিরাপত্তা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। Authentication ব্যবহারকারীর পরিচয় যাচাই করে এবং Authorization ব্যবহারকারীর অ্যাক্সেস নিয়ন্ত্রণ করে। বিল্ট-ইন এবং কাস্টম ফিল্টার ব্যবহার করে অ্যাপ্লিকেশনকে আরও সুরক্ষিত করা যায়।
ASP.Net MVC-তে Action Filters হল সেই ফিল্টারগুলি যা কন্ট্রোলার অ্যাকশনের আগে এবং পরে কার্যকর হয়। এই ফিল্টারগুলি সাধারণত প্রাক-অ্যাকশন বা পোস্ট-অ্যাকশন লজিক কার্যকর করার জন্য ব্যবহৃত হয়। ASP.Net MVC আপনাকে কাস্টম Action Filter তৈরি করার সুযোগ দেয়, যা আপনার অ্যাপ্লিকেশন থেকে বিশেষ চাহিদা অনুযায়ী ফিল্টারিং কার্যক্রম নির্ধারণ করতে সাহায্য করে।
কাস্টম Action Filter তৈরি করার মাধ্যমে আপনি বিশেষ কার্যক্রম (যেমন লগিং, অথেন্টিকেশন, অথোরাইজেশন, কাস্টম বৈধতা চেক, ইত্যাদি) প্রয়োগ করতে পারেন।
ASP.Net MVC-তে কাস্টম Action Filter তৈরি করতে আপনাকে ActionFilterAttribute ক্লাসটি হেরিটেজ (inherit) করতে হবে এবং তার মধ্যে OnActionExecuting
এবং OnActionExecuted
মেথডগুলি ওভাররাইড করতে হবে। এর মাধ্যমে আপনি কন্ট্রোলার অ্যাকশন কলের আগে এবং পরে কাস্টম কার্যক্রম পরিচালনা করতে পারেন।
ধরা যাক আমরা একটি কাস্টম Action Filter তৈরি করতে চাই যা প্রতিটি রিকোয়েস্টের লগ তৈরি করবে।
প্রথমে, একটি নতুন ক্লাস তৈরি করুন যা ActionFilterAttribute
ক্লাস থেকে হেরিট করবে। এরপর, OnActionExecuting
এবং OnActionExecuted
মেথডগুলিকে ওভাররাইড করুন।
using System.Web.Mvc;
using System.IO;
public class LogActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// রিকোয়েস্ট আসার আগে কার্যক্রম
string logMessage = $"Action '{filterContext.ActionDescriptor.ActionName}' started at {DateTime.Now}";
File.AppendAllText(HttpContext.Current.Server.MapPath("~/App_Data/ActionLog.txt"), logMessage + Environment.NewLine);
base.OnActionExecuting(filterContext);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
// রিকোয়েস্ট পরবর্তী কার্যক্রম
string logMessage = $"Action '{filterContext.ActionDescriptor.ActionName}' completed at {DateTime.Now}";
File.AppendAllText(HttpContext.Current.Server.MapPath("~/App_Data/ActionLog.txt"), logMessage + Environment.NewLine);
base.OnActionExecuted(filterContext);
}
}
এখানে, OnActionExecuting
মেথডে রিকোয়েস্ট আসার আগে একটি লগ তৈরি করা হচ্ছে এবং OnActionExecuted
মেথডে অ্যাকশন শেষ হওয়ার পরে একটি লগ তৈরি করা হচ্ছে।
আপনার কাস্টম Action Filter তৈরি করার পরে, আপনি এটি কন্ট্রোলার বা একক অ্যাকশন মেথডে প্রয়োগ করতে পারেন। এটি করতে, LogActionFilter
অ্যাট্রিবিউট ব্যবহার করুন।
[LogActionFilter]
public class HomeController : Controller
{
public ActionResult Index()
{
// কিছু কার্যক্রম
return View();
}
}
এখানে, HomeController
কন্ট্রোলারে থাকা সমস্ত অ্যাকশন মেথডে কাস্টম Action Filter প্রযোজ্য হবে।
public class HomeController : Controller
{
[LogActionFilter]
public ActionResult Index()
{
// কিছু কার্যক্রম
return View();
}
}
এখানে, কেবলমাত্র Index
অ্যাকশন মেথডে কাস্টম Action Filter প্রযোজ্য হবে।
ASP.Net MVC-তে কাস্টম Action Filter তৈরি করা একটি শক্তিশালী পদ্ধতি যা আপনাকে কন্ট্রোলার অ্যাকশনের আগে এবং পরে নির্দিষ্ট কার্যক্রম পরিচালনা করতে সাহায্য করে। কাস্টম ফিল্টার ব্যবহার করে আপনি লগিং, অথেন্টিকেশন, অথোরাইজেশন, ডেটা ভ্যালিডেশন এবং অন্যান্য অনেক কার্যক্রম কন্ট্রোল করতে পারেন। এটি কোড পুনঃব্যবহারযোগ্যতা এবং মেইনটেনেন্স সহজ করে তোলে, কারণ আপনি একই ফিল্টারটি বিভিন্ন কন্ট্রোলার এবং অ্যাকশন মেথডে প্রয়োগ করতে পারেন।
ASP.Net MVC অ্যাপ্লিকেশনগুলোতে Exception Handling এবং Logging অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। Exception Handling এর মাধ্যমে অ্যাপ্লিকেশন চলাকালে ঘটে যাওয়া ভুল বা ত্রুটিগুলি ধরতে ও সমাধান করতে সাহায্য করে, এবং Logging এর মাধ্যমে ত্রুটিগুলির বিস্তারিত তথ্য রেকর্ড করা হয়, যা ভবিষ্যতে ডিবাগging এবং সমস্যার সমাধানে সাহায্য করে।
ASP.Net MVC-তে Exception Handling এবং Logging পরিচালনার জন্য ফিল্টার ব্যবহার করা হয়। এই ফিল্টারগুলি অ্যাপ্লিকেশনের বিভিন্ন স্তরে ত্রুটি ধরতে এবং লগ করতে সক্ষম, যেমন কন্ট্রোলার অ্যাকশন মেথড, গ্লোবাল অ্যাপ্লিকেশন স্তরে অথবা নির্দিষ্ট ফিল্টার ব্যবহার করে।
ASP.Net MVC তে, Exception Handling ফিল্টার ব্যবহার করে অ্যাপ্লিকেশনের ত্রুটিগুলি কেন্দ্রীভূতভাবে পরিচালনা করা যায়। সাধারণত, HandleError
অ্যাট্রিবিউট ব্যবহার করে অ্যাকশন বা কন্ট্রোলারে ঘটে যাওয়া ত্রুটি সমাধান করা হয়।
1. HandleError অ্যাট্রিবিউটHandleError
অ্যাট্রিবিউটের মাধ্যমে আপনি একটি কন্ট্রোলার বা অ্যাকশন মেথডের মধ্যে যেকোনো অপ্রত্যাশিত ত্রুটি (exception) ধরতে পারেন এবং ব্যবহারকারীকে একটি কাস্টম ত্রুটি পৃষ্ঠা দেখাতে পারেন।
উদাহরণ:
[HandleError]
public ActionResult Index()
{
throw new Exception("Something went wrong!");
return View();
}
এখানে, HandleError
অ্যাট্রিবিউটটি Index
অ্যাকশন মেথডে ঘটে যাওয়া যে কোনো ত্রুটিকে ধরবে এবং একটি কাস্টম ত্রুটি পৃষ্ঠায় রিডিরেক্ট করবে।
2. কাস্টম ত্রুটি পৃষ্ঠাweb.config
ফাইলে কাস্টম ত্রুটি পৃষ্ঠা কনফিগার করা যায়, যা অ্যাপ্লিকেশনের সব ধরনের ত্রুটির জন্য ব্যবহার করা হবে।
উদাহরণ:
<system.web>
<customErrors mode="On" defaultRedirect="Error.html">
<error statusCode="404" redirect="NotFound.html" />
</customErrors>
</system.web>
এখানে, যদি কোনো ত্রুটি ঘটে, তবে ব্যবহারকারীকে Error.html
পৃষ্ঠায় রিডিরেক্ট করা হবে। বিশেষ ক্ষেত্রে, যেমন 404 (Page Not Found), NotFound.html
পৃষ্ঠায় রিডিরেক্ট হবে।
3. Global Exception Handling
গ্লোবাল লেভেলে ত্রুটি হ্যান্ডলিং করতে Application_Error
মেথডটি ব্যবহার করা যেতে পারে, যা Global.asax
ফাইলে থাকে।
উদাহরণ:
protected void Application_Error()
{
Exception exception = Server.GetLastError();
// লগিং অথবা কাস্টম ত্রুটি পৃষ্ঠা রিডিরেক্ট করতে এখানে কোড লিখুন।
}
Logging হল অ্যাপ্লিকেশনের কার্যকলাপের ইতিহাস রেকর্ড করার একটি পদ্ধতি। এটি ডিবাগging এবং সমস্যা সমাধানে সহায়ক। ASP.Net MVC-তে বিভিন্ন ধরনের লগিং ফ্রেমওয়ার্ক ব্যবহার করা যেতে পারে, যেমন NLog, Log4Net, Serilog ইত্যাদি।
1. NLog ব্যবহার করে লগিং
NLog একটি জনপ্রিয় লগিং ফ্রেমওয়ার্ক, যা অ্যাপ্লিকেশন স্তরে লগ ইনফরমেশন ধারণ করে এবং ত্রুটিগুলির বিস্তারিত তথ্য রেকর্ড করে। NLog কনফিগার করতে NLog.config
ফাইল ব্যবহার করা হয়।
উদাহরণ:
public class HomeController : Controller
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public ActionResult Index()
{
Logger.Info("Index action called.");
try
{
// কিছু কোড যা ত্রুটি ঘটাতে পারে
}
catch (Exception ex)
{
Logger.Error(ex, "Error occurred in Index action.");
}
return View();
}
}
এখানে, Logger.Info
এবং Logger.Error
ব্যবহার করে লগের বিভিন্ন স্তরে ইনফরমেশন এবং ত্রুটি রেকর্ড করা হয়েছে।
2. Log4Net ব্যবহার করে লগিং
Log4Net একটি জনপ্রিয় লগিং ফ্রেমওয়ার্ক, যা আপনাকে লগ ইনফরমেশন বিভিন্ন লেভেলে (Info, Warn, Error) ধারণ করতে সহায়ক।
উদাহরণ:
private static readonly ILog log = LogManager.GetLogger(typeof(HomeController));
public ActionResult Index()
{
log.Info("Index action called.");
try
{
// কিছু কোড যা ত্রুটি ঘটাতে পারে
}
catch (Exception ex)
{
log.Error("Error occurred in Index action.", ex);
}
return View();
}
এখানে, log.Info
এবং log.Error
ব্যবহার করে লগ ইনফরমেশন রেকর্ড করা হয়েছে।
Exception Handling এবং Logging একসাথে ব্যবহার করে আপনি অ্যাপ্লিকেশন চলাকালীন ঘটে যাওয়া ত্রুটিগুলির বিস্তারিত লগ রাখতে পারবেন এবং সেই ত্রুটিগুলিকে সঠিকভাবে পরিচালনা করতে পারবেন।
উদাহরণ:
[HandleError]
public ActionResult Index()
{
try
{
// কিছু কোড যা ত্রুটি ঘটাতে পারে
}
catch (Exception ex)
{
Logger.Error(ex, "Error occurred in Index action.");
return View("Error");
}
}
এখানে, ত্রুটি ঘটে গেলে প্রথমে লগ ইনফরমেশন রেকর্ড হবে এবং তারপর ব্যবহারকারীকে কাস্টম ত্রুটি পৃষ্ঠায় রিডিরেক্ট করা হবে।
ASP.Net MVC অ্যাপ্লিকেশনে Exception Handling এবং Logging ফিল্টার ব্যবহার করা খুবই গুরুত্বপূর্ণ, কারণ এটি অ্যাপ্লিকেশনের ত্রুটিগুলি সহজে ধরতে এবং সেগুলির বিস্তারিত রেকর্ড রাখতে সহায়ক। এতে অ্যাপ্লিকেশনটি আরো স্থিতিশীল এবং রক্ষণাবেক্ষণযোগ্য হয়, এবং ডেভেলপাররা সহজে সমস্যাগুলি চিহ্নিত ও সমাধান করতে পারেন।
Output Caching ASP.Net MVC অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ ফিচার, যা পারফরম্যান্স বাড়ানোর জন্য সার্ভার-সাইড ডেটা বা আউটপুটকে ক্যাশে (cache) করে। ক্যাশিংয়ের মাধ্যমে সার্ভার একই ডেটা পুনরায় তৈরি না করে পূর্বে তৈরি ডেটা ব্যবহার করতে পারে। এটি অ্যাপ্লিকেশনের রেসপন্স টাইম কমায় এবং সার্ভার রিসোর্সের উপর চাপ কমায়।
Output Caching মূলত অ্যাপ্লিকেশনের আউটপুট (যেমন HTML পেজ, ডেটা) সাময়িকভাবে সংরক্ষণ করে। যখন ব্যবহারকারী একই রিকোয়েস্ট বারবার করে, তখন সার্ভার নতুন করে আউটপুট জেনারেট না করে ক্যাশে থাকা আউটপুট প্রদান করে।
ASP.Net MVC-তে Output Caching ব্যবহার করতে OutputCache
অ্যাট্রিবিউট ব্যবহার করা হয়। এটি কন্ট্রোলার বা অ্যাকশন মেথডে প্রয়োগ করা যায়।
[OutputCache(Duration = 60, VaryByParam = "none")]
public ActionResult Index()
{
return View();
}
বর্ণনা:
60
সেকেন্ড সময়ের জন্য আউটপুট ক্যাশে থাকবে।Duration
কত সময় ক্যাশটি কার্যকর থাকবে তা নির্ধারণ করে। এটি সেকেন্ডে পরিমাপ করা হয়।
VaryByParam
URL প্যারামিটারের উপর ভিত্তি করে ভিন্ন আউটপুট ক্যাশে রাখতে সাহায্য করে।
"none"
: কোনো প্যারামিটারকে গুরুত্ব দেয় না।"*"
: সব প্যারামিটার অনুযায়ী ক্যাশ তৈরি করে।VaryByCustom
কাস্টম কন্ডিশনের উপর ভিত্তি করে ক্যাশ তৈরি করতে সাহায্য করে। যেমন, ব্যবহারকারীর ব্রাউজার বা সংস্করণ।
কিছু ক্ষেত্রে অ্যাপ্লিকেশনের একটি নির্দিষ্ট অংশ ক্যাশ করতে হয়। Razor Views এর মধ্যে Html.Action
বা Html.RenderAction
ব্যবহার করে এটি করা যায়।
[OutputCache(Duration = 120)]
public PartialViewResult LatestProducts()
{
var products = GetLatestProducts();
return PartialView(products);
}
বর্ণনা: এই মেথড শুধুমাত্র একটি নির্দিষ্ট পেজ অংশ (partial view) ক্যাশে সংরক্ষণ করবে।
ক্যাশিং পলিসি ব্যবস্থাপনা সহজ করার জন্য Web.config ফাইলে Cache Profile তৈরি করা যায়।
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="ShortCache" duration="30" varyByParam="none" />
<add name="LongCache" duration="300" varyByParam="none" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>
এরপর Controller বা Action Method-এ ব্যবহার:
[OutputCache(CacheProfile = "ShortCache")]
public ActionResult Index()
{
return View();
}
Output Caching ছাড়াও পারফরম্যান্স বাড়ানোর জন্য বিভিন্ন কৌশল ব্যবহার করা যেতে পারে।
Data Caching
MemoryCache
বা Distributed Cache
ব্যবহার করতে পারেন।Bundling and Minification
Asynchronous Programming
async
এবং await
ব্যবহার করে অ্যাসিঙ্ক্রোনাস পদ্ধতিতে অ্যাপ্লিকেশন ডেভেলপ করুন।Database Optimization
Lazy Loading
Output Caching ASP.Net MVC অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করার জন্য একটি গুরুত্বপূর্ণ টুল। এটি রেসপন্স টাইম কমায়, সার্ভার লোড হ্রাস করে এবং অ্যাপ্লিকেশনকে দ্রুত এবং স্কেলেবল করে তোলে। Output Caching এর পাশাপাশি অন্যান্য পারফরম্যান্স অপ্টিমাইজেশন কৌশলগুলো ব্যবহার করলে অ্যাপ্লিকেশন আরও কার্যকর এবং ব্যবহারকারীর জন্য সন্তোষজনক অভিজ্ঞতা নিশ্চিত করা যায়।
common.read_more